/*
 * MsgInfo.java
 *
 * Copyright 2009 Universidad Francisco de Paula Santander (UFPS).
 * Todos los Derechos Reservados.
 * Creado el 21/04/2009, 11:23:38 AM
 */


package com.ufps.cuatro.util;

import java.io.Serializable;
import java.util.Date;

/**
 * <i><b>MsgInfo:</b></i> @DefinicionClase
 * @author Carlos A. Torres C. - Dolly E. Guerrero. <https://code.google.com/p/tesis4dor/>
 * @version 1.0 21/04/2009
 * @see Serializable
 */
public class MsgInfo implements Serializable{

    private static final long serialVersionUID = -4073059580259267222L;

    /**
     * Variable que indica que la ventana o mensaje a mostrar es una Advertencia
     */
    public final static int WARNING = 1;
    /**
     * Variable que indica que la ventana o mensaje a mostrar es un Error
     */
    public final static int ERROR = 2;
    /**
     * Variable que indica que la ventana o mensaje a mostrar es una Infrmacion 
     */
    public final static int INFORMATION = 3;
    /**
     * @DefinicionAtributo
     */
    public final static int TOOLTIPS = 4;

    private static int id;

    private int tipo;
    private int idMSG;
    private String strMSG;
    private String strMSGJava;
    private String strTitulo;
    private boolean visualizado;
    private boolean auto;
    private Date fecha;
    
    public MsgInfo(){
        this.idMSG = MsgInfo.id++;
    }

    /**
     * Constructor de la clase
     * @param tipo @DefinicionParametro
     * @param strTitulo @DefinicionParametro
     * @param strMSG @DefinicionParametro
     * @param auto @DefinicionParametro
     */
    public MsgInfo(int tipo, String strTitulo, String strMSG, boolean auto) {
        this.tipo = tipo;
        this.strTitulo = strTitulo;
        this.strMSG = strMSG;
        this.idMSG = MsgInfo.id++;
        this.visualizado = false;
        this.auto = auto;
        this.fecha = new Date();
    }

    /**
     * Devuelve la fecha del sistema
     * @return @DefinicionReturn
     */
    public Date getFecha() {
        return fecha;
    }

    /**
     * Establece la fecha
     * @param fecha
     */
    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    /**
     * @DefinicionParametro
     * @return @DefinicionReturn
     */
    public int getIdMSG() {
        return idMSG;
    }

    /**
     * @DefinicionMetodo
     * @param idMSG @DefinicionParametro
     */
    public void setIdMSG(int idMSG) {
        this.idMSG = idMSG;
    }

    /**
     * @DefinicionMetodo
     * @return @DefinicionReturn
     */
    public String getStrMSG() {
        return strMSG;
    }

    /**
     * @DefinicionMetodo
     * @param strMSG @DefinicionParametro
     */
    public void setStrMSG(String strMSG) {
        this.strMSG = strMSG;
    }

    /**
     * @DefinicionMetodo
     * @return @DefinicionReturn
     */
    public int getTipo() {
        return tipo;
    }

    /**
     * @DefinicionMetodo
     * @param tipo @DefinicionParametro
     */
    public void setTipo(int tipo) {
        this.tipo = tipo;
    }

    /**
     * @DefinicionMetodo
     * @return @DefinicionReturn
     */
    public boolean isVisualizado() {
        return visualizado;
    }

    /**
     * @DefinicionMetodo
     * @param visualizado @DefinicionParametro
     */
    public void setVisualizado(boolean visualizado) {
        this.visualizado = visualizado;
    }

    /**
     * @DefinicionMetodo
     * @return @DefinicionReturn
     */
    public static int getId() {
        return id;
    }

    /**
     * @DefinicionMetodo
     * @return @DefinicionReturn
     */
    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    /*
     * Devuelve el titulo del mensaje 
     * @return @DefinicionReturn
     */
    public String getStrTitulo() {
        return strTitulo;
    }

    /**
     * Etablece el titulo del mensaje 
     * @param strTitulo titulo del mensaje 
     */
    public void setStrTitulo(String strTitulo) {
        this.strTitulo = strTitulo;
    }

    public boolean isAuto() {
        return auto;
    }

    public void setAuto(boolean auto) {
        this.auto = auto;
    }

    public String getStrMSGJava() {
        return strMSGJava;
    }

    public void setStrMSGJava(String strMSGJava) {
        this.strMSGJava = strMSGJava;
    }

    @Override
    public String toString() {
        return idMSG + ": " + strTitulo;
    }
}
